package types

type GetOptionConfigItemReq struct {
	OptionsName string `json:"options_name"`
}

type GetOptionConfigItemRes struct {
	Code int64  `json:"code"`
	Msg  string `json:"msg"`
	Data map[string]string
}

type ProjectInvestedSpentConfig struct {
	Code int64             `json:"code"`
	Msg  string            `json:"msg"`
	Data map[string]string `json:"data"`
}

type BIConfigOption struct {
	Code int64  `json:"code"`
	Msg  string `json:"msg"`
	Data struct {
		ProjectListShowId  string `json:"project_list_show_id"`  // 要显示的项目配置
		DetailVideoStepIds string `json:"detail_video_step_ids"` // 要显示视频的工序
	} `json:"data"`
}

type BiProjectConfigRes struct {
	Code int64           `json:"code"`
	Msg  string          `json:"msg"`
	Data BiProjectConfig `json:"data"`
}

type GetBiConfigShowProjectIdListRes struct {
	Code int64   `json:"code"`
	Msg  string  `json:"msg"`
	Data []int64 `json:"data"`
}

// BiProjectConfig  bi项目详情配置
type BiProjectConfig struct {
	ID                 int64                 `json:"id"`
	Name               string                `json:"name"`
	Code               string                `json:"code"`
	Type               string                `json:"type"`
	TenantID           int64                 `json:"tenant_id"`
	BelongProjectID    int64                 `json:"belong_project_id"`
	Public             string                `json:"public"`
	IsDemo             string                `json:"is_demo"`
	Description        string                `json:"description"`
	PlanResource       int64                 `json:"plan_resource"`
	DramaType          string                `json:"drama_type"`
	Tenant             Tenant                `json:"tenant"`
	IsShow             string                `json:"is_show"`
	Invested           Invested              `json:"invested"`
	Spent              Spent                 `json:"spent"`
	DetailVideoList    []string              `json:"detail_video_list"`
	AssetVideoList     []string              `json:"asset_video_list"`
	ProjectPreviewImg  ProjectPreviewImg     `json:"project_preview_img"`
	EpisodeStatusCount EpisodeStatusCount    `json:"episode_status_count"`
	TaskStatusCount    TaskStatusCountConfig `json:"task_status_count"`
	InprogressEpisode  []int64               `json:"inprogress_episode"`
}

type GetProjectBiConfigReqParam struct {
	Filter GetProjectBiConfigReqFilter `json:"filter"`
}
type GetProjectBiConfigReqFilter struct {
	Id uint64 `json:"id"`
}

type GetProjectBiConfigReq struct {
	Param GetProjectBiConfigReqParam `json:"param"`
}
type SelectBiProjectConfigReqParamFilter struct {
	Id []string `json:"id"`
}
type SelectBiProjectConfigReqParam struct {
	Filter SelectBiProjectConfigReqParamFilter `json:"filter"`
	Page   []int                               `json:"page"`
}
type SelectBiProjectConfigReq struct {
	Param SelectBiProjectConfigReqParam `json:"param"`
}

type SelectBiProjectConfigRes struct {
	Code int               `json:"code"`
	Msg  string            `json:"msg"`
	Data []BiProjectConfig `json:"data"`
}
type Invested struct {
	Value int64  `json:"value"`
	Unit  string `json:"unit"`
}
type Spent struct {
	Value int64  `json:"value"`
	Unit  string `json:"unit"`
}
type ProjectPreviewImg struct {
	Big    string `json:"big"`
	Middle string `json:"middle"`
	Small  string `json:"small"`
}

type Tenant struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

type EpisodeStatusCount struct {
	Done   int64 `json:"done"`
	Plan   int64 `json:"plan"`
	Online int64 `json:"online"`
}
type TaskStatusCountConfig struct {
	Done       int64 `json:"done"`
	Total      int64 `json:"total"`
	Overdue    int64 `json:"overdue"`
	Inprogress int64 `json:"inprogress"`
}

type GetProjectShowStepCategoryListConfig struct {
}
type StepCategoryListConfigItem struct {
	Code           string `json:"code"`
	Color          string `json:"color"`
	EntityID       int64  `json:"entity_id"`
	ID             int    `json:"id"`
	Index          int64  `json:"index"`
	IsDeprecate    string `json:"is_deprecate"`
	IsEnableCensus string `json:"is_enable_census"`
	IsShow         string `json:"is_show"`
	IsStandard     string `json:"is_standard"`
	ModuleCode     string `json:"module_code"`
	Name           string `json:"name"`
	ParentID       int64  `json:"parent_id"`
	ShowIndex      int64  `json:"show_index"`
	ShowName       string `json:"show_name"`
	TaskType       string `json:"task_type"`
	UUID           string `json:"uuid"`
}
type GetProjectShowStepCategoryListConfigRes struct {
	Code int64                        `json:"code"`
	Data []StepCategoryListConfigItem `json:"data"`
	Msg  string                       `json:"msg"`
}

type GetProjectShowStepCategoryListConfigReq struct {
	Param struct {
		ProjectId int64 `json:"project_id"`
	} `json:"param"`
}

type GetTaskReviewTagConfigReq struct {
	OptionsName     string `json:"options_name"`      // 配置名称
	OptionsItemName string `json:"options_item_name"` // 二级配置名称
}

type GetTaskReviewTagConfigRes struct {
	Code int                             `json:"code"`
	Msg  string                          `json:"msg"`
	Data []GetTaskReviewTagConfigResData `json:"data"`
}
type GetTaskReviewTagConfigResData struct {
	Name          string `json:"name"`
	SortIndex     string `json:"sort_index"`
	RepairPercent string `json:"repair_percent"`
}
type GetProjectReviewOptionsReq struct {
	Param struct {
		Filter struct {
			ProjectId int64 `json:"project_id"`
		} `json:"filter"`
	} `json:"param"`
}

type GetProjectReviewOptionsRes struct {
	Code int                              `json:"code"`
	Msg  string                           `json:"msg"`
	Data []GetProjectReviewOptionsResData `json:"data"`
}
type GetProjectReviewOptionsResDataJson struct {
	Name            string `json:"name"`
	RepairPercent   string `json:"repair_percent"`
	StepCategoryIds string `json:"step_category_ids"`
}
type GetProjectReviewOptionsResData struct {
	Id        int64                                  `json:"id"`
	Name      string                               `json:"name"`
	Json      []GetProjectReviewOptionsResDataJson `json:"json"`
	ProjectId int64                                  `json:"project_id"`
}
